package com.example.brain_wave.api.model

/**
 * 平板脑波数据请求模型
 * 
 * 这个数据类定义了发送到服务端的脑波数据结构，包含：
 * - 会话和房间标识信息
 * - 高频率原始EEG数据（512Hz采样）
 * - 8个详细的频段功率数据
 * - NeuroSky算法输出（专注度和冥想度）
 * - 信号质量指标
 * 
 * 使用方法：
 * 1. 从蓝牙设备获取原始脑波数据
 * 2. 进行频域分析得到各频段功率
 * 3. 应用NeuroSky算法计算专注度和冥想度
 * 4. 封装成此数据结构发送到服务端
 * 
 * 原理：
 * - raw_value: 512Hz采样的原始EEG信号，用于后续分析
 * - 频段功率: 通过FFT变换得到不同频率范围的功率值
 * - NeuroSky算法: 基于特定频段比值计算的认知状态指标
 */
data class TabletBrainWaveRequest(
    /**
     * 会话ID，用于标识一次完整的脑波采集会话
     */
    val session_id: String,
    
    /**
     * 房间ID，用于标识数据采集的物理位置或逻辑分组
     */
    val room_id: String,
    
    /**
     * 数据采集时间戳（毫秒）
     */
    val timestamp: Long,
    
    /**
     * 原始EEG数据，512Hz采样频率
     * 包含1秒钟的原始脑电信号数据点
     */
    val raw_value: List<Int>,
    
    // 8个详细的频段功率数据（单位：μV²）
    /**
     * Delta波功率 (0.5-4Hz)
     * 与深度睡眠和无意识状态相关
     */
    val delta: Int,
    
    /**
     * Theta波功率 (4-8Hz) 
     * 与创造力、直觉和深度冥想相关
     */
    val theta: Int,
    
    /**
     * 低Alpha波功率 (8-10Hz)
     * 与放松和清醒状态相关
     */
    val low_alpha: Int,
    
    /**
     * 高Alpha波功率 (10-12Hz)
     * 与注意力集中和认知处理相关
     */
    val high_alpha: Int,
    
    /**
     * 低Beta波功率 (12-18Hz)
     * 与正常清醒和轻度集中相关
     */
    val low_beta: Int,
    
    /**
     * 高Beta波功率 (18-30Hz)
     * 与高度集中和焦虑状态相关
     */
    val high_beta: Int,
    
    /**
     * 低Gamma波功率 (30-50Hz)
     * 与认知绑定和意识整合相关
     */
    val low_gamma: Int,
    
    /**
     * 中Gamma波功率 (50-100Hz)
     * 与高级认知功能相关
     */
    val mid_gamma: Int,
    
    // NeuroSky算法输出 (0-100)
    /**
     * 专注度指标 (0-100)
     * NeuroSky专有算法计算的注意力集中程度
     * 0: 完全不集中, 100: 高度集中
     */
    val attention: Int,
    
    /**
     * 冥想度指标 (0-100)
     * NeuroSky专有算法计算的放松冥想程度
     * 0: 完全不放松, 100: 深度冥想状态
     */
    val meditation: Int,
    
    // 信号质量指标
    /**
     * 信号质量指标 (0-200)
     * 0: 信号质量最好, 200: 信号质量最差
     * 通常 < 25 表示信号质量良好
     */
    val poor_signal: Int,
    
    /**
     * 眨眼强度 (0-255)
     * 检测到的眨眼动作强度
     * 0: 无眨眼, 255: 最强眨眼
     */
    val blink_strength: Int
)